
#ifndef SYSTEMPLATFORM_H_
#define SYSTEMPLATFORM_H_


#if defined(ANDROID)

#	define PLATFORM_ANDROID
#	undef PLATFORM_IOS
#	undef PLATFORM_MACOS
#	undef PLATFORM_WINDOWS
#	undef PLATFORM_UNIX

#	include <cstdarg>
#	include <stddef.h>
#	include <stdint.h>
#	include <stdio.h>

#elif defined(WIN32) || defined(_WINDOWS)

#	undef PLATFORM_ANDROID
#	undef PLATFORM_IOS
#	undef PLATFORM_MACOS
#	define PLATFORM_WINDOWS
#	undef PLATFORM_UNIX

// Windows
#	ifndef WIN32_LEAN_AND_MEAN
#		define WIN32_LEAN_AND_MEAN
#	endif
#	ifndef NOMINMAX
#		define NOMINMAX
#	endif

#	include <Windows.h>

#elif defined(_UNIX)

#	undef PLATFORM_ANDROID
#	undef PLATFORM_IOS
#	undef PLATFORM_MACOS
#	undef PLATFORM_WINDOWS
#	define PLATFORM_UNIX

#elif defined(__APPLE__) || defined(MACOSX)

#	undef PLATFORM_ANDROID
#	undef PLATFORM_IOS
#	define PLATFORM_MACOS
#	undef PLATFORM_WINDOWS
#	undef PLATFORM_UNIX

#elif defined(IOS)

#	undef PLATFORM_ANDROID
#	define PLATFORM_IOS
#	undef PLATFORM_MACOS
#	undef PLATFORM_WINDOWS
#	undef PLATFORM_UNIX

#else

#	error "Unsupported platform"

#endif 

#endif // SYSTEMPLATFORM_H_
